When a server performs an input/output (IO) access to a storage device which stores data to be used, the server accesses the storage device through an access path via an interface on the side of the server and an interface on the side of the storage device. The access path between the server and the storage device often becomes redundant, and the multipass driver running on the server selects an access path and the server accesses the storage device through the selected access path.
FIG. 18 illustrates an example IO access from a server to a storage device. As illustrated in FIG. 18, a user application 20 which runs on a server 92 (represented by a server X, a server Y, and a server Z) requests an IO access to a multipass driver 921.
The multipass driver 921 selects an access path through a host bus adapter (HBA) 22 on the side of the server 92 and a channel adapter (CA) port 30 on the side of a storage device 93. In FIG. 18, the multipass driver 921 which runs on the server X selects either of an access path through the CA port 30 represented by the HBA 22 and a CA port A or an access path through the CA port 30 represented by another HBA 22 and a CA port B. The multipass driver 921 selects an access path such that access performance is optimized.
In the IO access to the storage device 93 from the server 92, an access flow rate requested by the server 92 is dependent on the following two factors: (1) Characteristics of the user application 20 which runs on the server 92; and
(2) Role of the Server 92.
Here, the access flow rate is an amount of data to be transferred during the IO access.
Examples of (1) may include an operation time period (a work time period, a midnight backup) of the user application 20, and a ratio between Read and Write operations of the user application 20. Examples of (2) may include a main operating server, a sub operating server, and a standby server.
FIGS. 19 and 20 illustrate example changes in access flow rates which are dependent on the role of the server 92. In FIGS. 19 and 20, the server X is a main operating server, the server Y is a sub operating server, and the server Z is a standby server. FIG. 19 illustrates an example change in an access flow rate of an operating application on Monday. Here, the operating application is an operating application which operates in an operating server and a standby system of an operating server. In FIG. 19, time is plotted on the horizontal axis and the access flow rate is plotted on the vertical axis. As illustrated in FIG. 19, a temporal change in the access flow rate in one day varies depending on the role of the server 92.
FIG. 20 illustrates example statistics of the access flow rate of the operating application for each day of the week. In FIG. 20, the day of the week is plotted on the horizontal axis and the access flow rate is plotted on the vertical axis. As illustrated in FIG. 20, depending on the role of the server 92, the access flow rate for each day of the week varies.
Access performance in each access path is dependent on the following two factors of the storage device 93:
(3) number of steps in an internal process in each CA port 30; and
(4) central processing unit (CPU) power to be allocated to each CA port 30.
The factor (3) is the number of steps of the IO process by a controller module (CM: a control device of the storage device 93) after the storage device 93 receives an access until the storage device 93 responds to the server 92, and (3) is dependent on the CA port 30. FIG. 21 illustrates an example difference in the number of steps in the internal process among the CA ports 30. As illustrated in FIG. 21, examples of the IO process of each CA port 30 may include an IO receiving process of receiving an IO access, a data transfer process of transferring data to the storage unit 32, and an IO respond process of responding to the IO access.
The number of process steps in the IO processes in the CA port A and the CA port C is larger than those in the CA port B and the CA port D by a notification process. Here, the “notification process” refers to a process for notifying that a CA port 30 in a non-responsive CM has performed an IO process to a CA port 30 in a responsive CM. In FIG. 21, the CA port A and the CA port C are the CA ports in a non-responsive CM, and the CA port B and the CA port D are the CA ports in a responsive CM. The responsive CM is the CM which takes charge of control of the storage unit 32. The number of steps in the internal process may vary for each CA port in examples other than that illustrated in FIG. 21.
Regarding (4), FIG. 22 illustrates example allocation of CPU power to each CA port 30. In FIG. 22, 20% of the CPU power is allocated to the IO processes of the CA port A and the CA port B, 15% of the CPU power is allocated to the IO processes of the CA port C and the CA port D, and 30% of the CPU power is allocated to other processes.
In order to set the processing time of the user application 20 on the server 92 to be the shortest, it is desired to adjust (3) and (4) in accordance with (1) and (2). However, the server 92 does not have a function to transmit (1) and (2) to the storage device 93, and the storage device 93 is not able to adjust (3) and (4) in accordance with (1) and (2).
Therefore, the multipass driver 921 acquires information on (3) and (4) from the storage device 93 and, when selecting an access path, preferentially selects an access path to a CA port 30 with a smaller number of steps of the internal process using the acquired information on (3). The multipass driver 921 obtains the CPU power allocated to the CA port 30 using the acquired information on (4) and temporarily holds, in the multipass driver 921, the IO access that is not able to be processed, thereby limiting an access flow rate from the server 92.
There has been proposed a technology, in a distributed database management system in which data is distributed in a plurality of processors, to detect an imbalance in process load of each processor, obtain a data distribution configuration which can equalize the imbalance, and perform a change process of the data distribution configuration at predetermined timing. According to this technology, the process load in each processor can be easily equalized.
Further, there has been proposed a technology to detect a loading state of memory by a tracing function of obtaining access statistics so that imbalance/competition of memory access issued by each processor can be discriminated, and implement a load distribution of the memory access by replacing memory spaces.
Further, there has been proposed a technology to acquire, for each database server, a data usage indicating data capacitance which is a target of an access process, calculate a ratio of a CPU allotment based on a ratio of the data usage for each database server, and change CPU resource allocation to the database server. According to this technology, a decrease in processing performance of a database management system can be reduced, and an imbalance in the processing performance can be corrected.
Japanese Laid-open Patent Publication No. 9-218858, Japanese Laid-open Patent Publication No. 2007-257028, Japanese Laid-open Patent Publication No. 2007-249468 are examples of the related art.